package com.ruoyi.canteen.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.canteen.domain.CanteenCp;
import com.ruoyi.canteen.domain.CanteenCpClass;
import com.ruoyi.canteen.domain.CanteenCpSku;
import com.ruoyi.canteen.domain.CanteenCpSpecial;
import com.ruoyi.canteen.vo.CanteenCpSkuVo;
import com.ruoyi.canteen.vo.CanteenCpVo;

/**
 * 菜品Service接口
 * 
 * @author ruoyi
 * @date 2021-09-08
 */
public interface ICanteenCpService 
{
    /**
     * 查询菜品
     * 
     * @param id 菜品主键
     * @return 菜品
     */
    public CanteenCp selectCanteenCpById(Long id);

    //public CanteenCp getCanteenCpById(Long id);

    public List<CanteenCpClass>  getCanteenCpClassById(Long id);

    public List<CanteenCpSpecial> getCanteenCpSpecialsById(Long id);

    /**
     * 查询菜品列表
     * 
     * @param canteenCp 菜品
     * @return 菜品集合
     */
    public List<CanteenCp> selectCanteenCpList(CanteenCp canteenCp);




    /**
     * 新增菜品
     * 
     * @param canteenCp 菜品
     * @return 结果
     */
    public int insertCanteenCp(CanteenCp canteenCp) throws Exception;


    public int insertCpClass(Map<String, Object> map);

    /**
     * 修改菜品
     * 
     * @param canteenCp 菜品
     * @return 结果
     */
    public int updateCanteenCp(CanteenCp canteenCp) throws Exception;

    /**
     * 批量删除菜品
     * 
     * @param ids 需要删除的菜品主键集合
     * @return 结果
     */
    public int deleteCanteenCpByIds(Long[] ids);

    public int deleteCanteenCpClassRelationByCpId(Long cpId);

    /**
     * 删除菜品信息
     * 
     * @param id 菜品主键
     * @return 结果
     */
    public int deleteCanteenCpById(Long id);

    /**
     * 查询菜品列表
     * @param cpClassId 菜品类型
     * @return
     */
    public List<CanteenCp> selectCpListByClass(Integer cpClassId);

    /**
     * 查询菜品SKU列表
     * @param cpClassId 菜品类型
     * @return
     */
    public List<CanteenCpSku> selectCpSkuListByClass(Integer cpClassId);

    /**
     * 查询菜品VO列表
     * @param cpClassId 菜品类型
     * @return
     */
    public List<CanteenCpVo> selectCpVoListByClass(Integer cpClassId);

    /***
     * 查询当前菜品包含在几个门店中
     * @param cpIds 菜品ID
     * @return
     */
//    public Integer selectMdCountByCps(String cpIds);

    /***
     * 查询当前菜品是否为同一门店
     * @param cpIds 菜品ID
     * @return
     */
    public boolean isSameMd(String cpIds);

}
